import math
def CountFrequency(my_list):
freq = {}
for item in my_list:
if (item in freq):
freq[item] += 1
else:
freq[item] = 1
return freq
n=int(input())
l=sorted(list(map(int,input().split())))
freq=CountFrequency(l)
v=[]
for value in freq.items():
v.append(value[1])
if v[0]>=3:
print(math.comb(v[0],3))
elif v[0]==1 and v[1]>1:
print(math.comb(v[0],1)*math.comb(v[1],2))
elif v[0]==2 and v[1]>=1:
print(math.comb(v[0],2)*math.comb(v[1],1))
else:
print(math.comb(v[0],1)*math.comb(v[1],1)*math.comb(v[2],1))
#include <bits/stdc++.h>
#define pii pair<int,int>
#define int long long
#define ios ios::sync_with_stdio(false),cin.tie(0);
#define multi int t;cin>>t;for(int i=1;i<=t;++i)solve()
#define rep(i,a,b) for(int i=a;i<=b;++i)
using namespace std;
using i64 = long long;
const int N = 1e5 + 10;
int c[N][4];
void solve() {
int n;
cin >> n;
vector<int> a(n + 1);
map<int, int> mp;
rep(i, 1, n) cin >> a[i];
sort(a.begin() + 1, a.end());
rep(i, 1, n) mp[a[i]]++;
if(a[1] != a[2] && a[2] != a[3]) {
cout << 1ll * mp[a[1]] * mp[a[2]] * mp[a[3]] << "\n";
}else if(a[1] == a[2] && a[2] == a[3]) {
cout << c[mp[a[1]]][3] << "\n";
}else if(a[1] == a[2]) {
cout << c[mp[a[1]]][2] * mp[a[3]] << "\n";
}else if(a[3] == a[2]) {
cout << c[mp[a[2]]][2] * mp[a[1]] << "\n";
}
}
signed main() {
ios;
c[1][0] = c[1][1] = 1;
for (int i = 2; i < N; i++){
c[i][0] = 1;
for (int j = 1; j < 4; j++)
c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]);
}
solve();
//multi;
return 0;
}
1302. Deepest Leaves Sum | 1209. Remove All Adjacent Duplicates in String II |
994. Rotting Oranges | 983. Minimum Cost For Tickets |
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |